/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package logic;

import gui.MainWin;
import java.awt.print.PrinterException;
import java.text.MessageFormat;
import javax.swing.JTable;
import javax.swing.JTable.PrintMode;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Freshman
 */
public class PrintTable {

    private int tableToPrint;
    private Varpool vap;
    private MainWin mw;

    public PrintTable(int selectedIndex, Varpool variables, MainWin aThis) {
        this.tableToPrint = selectedIndex;
        this.vap = variables;
        this.mw = aThis;

        printTab();
    }

    private void printTab() {
        MessageFormat header = new MessageFormat("Tabelle: " + vap.getDataTable().get(tableToPrint).getTabName());
        MessageFormat footer = new MessageFormat("Seite - {0}");
        try {
            DefaultTableModel tm = new DefaultTableModel(vap.getDataTable().get(tableToPrint).getTabData(), vap.getDataTable().get(tableToPrint).getColHeader());
            final JTable t = new JTable(tm);
            //boolean complete = t.print(PrintMode.FIT_WIDTH, header, footer);
            boolean complete = t.print();
            if (complete) {
                mw.setStatus("Tabelle " + vap.getDataTable().get(tableToPrint).getTabName() + " wurde gedruckt");
            } else {
                mw.setStatus("Hinweis: Drucken der Tabelle " + vap.getDataTable().get(tableToPrint).getTabName() + " wurde abgebrochen");
            }
        } catch (PrinterException pe) {
            mw.setStatus("Fehler: Der Druckvorgang konnte nicht korrekt durchgeführt werden! " + pe.getMessage());
        }
    }
}
